package com.qlk.vorder.manager;

import java.util.List;

import com.qlk.vorder.domain.Orders;
import com.qlk.vorder.domain.query.OrdersQuery;
import com.qlk.vorder.sdk.api.request.OrdersRequestDto;
import com.qlk.common.utils.page.PageUtil;
import com.qlk.common.utils.wrap.Wrapper;

/**
 * OrdersManager接口
 * 
 * @author zhaoyanan
 * @version 2016-7-28 14:14:00
 * 
 */
public interface OrdersManager {

	/**
	 * 批量增加对象信息
	 * 
	 * @param ordersList
	 * @return
	 */
	public boolean insert(List<Orders> ordersList);

	/**
	 * 单个增加对象信息
	 * 
	 * @param orders
	 * @return
	 */
	public boolean insert(Orders orders);

	/**
	 * 更新 对象信息
	 * 
	 * @param orders
	 *            对象信息对象
	 * @return false：失败 true：成功
	 */
	public boolean update(Orders orders);

	/**
	 * 根据查询Bean获取对象集合，无翻页
	 * 
	 * @param queryBean
	 * @return
	 */
	public List<Orders> queryOrdersList(OrdersQuery queryBean);

	/**
	 * 根据查询Bean获取对象集合，带翻页
	 * 
	 * @param queryBean
	 * @param pageUtil
	 * @return
	 */
	public List<Orders> queryOrdersListWithPage(OrdersQuery queryBean, PageUtil pageUtil);

	/**
	 * 根据查询Bean获取对象信息总数
	 * 
	 * @param queryBean
	 *            对象信息查询对象
	 * @return 对象信息总数
	 */
	public int queryOrdersCount(OrdersQuery queryBean);

	/**
	 * 根据主键删除对象信息，该处做的是逻辑删除
	 * 
	 * @param orders
	 *            　
	 * @return
	 */
	public boolean delete(Orders orders);

	/**
	 * 根据主键获取对象信息
	 * 
	 * @param id
	 *            主键字段
	 * @return 对象信息
	 */
	public Orders getOrdersById(Long id);

	/**
	 * 根据主键集合批量删除对象信息，该处做的是逻辑删除
	 * 
	 * @param orderss
	 *            Orders集合
	 * @return
	 */
	public boolean delete(Orders[] orderss);

	/**
	 * 判断是否存在
	 * 
	 * @param orders
	 * @return
	 */
	public boolean exist(Orders orders);

	/**
	 * 查询订单主信息
	 * 
	 * @param ordersQuery
	 * @return
	 */
	public Orders getOrdersByOrderId(OrdersQuery ordersQuery);

	/**
	 * 接收推送数据
	 * 
	 * @param request
	 * @return
	 */
	public Wrapper<?> insertOrderData(OrdersRequestDto request);
}
